package com.fowo.api.model.supplier.review;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fowo.api.common.validator.*;
import io.swagger.v3.oas.annotations.media.Schema;
import javax.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;

/**
 * 供应商评审任务 预览导入辅助模型(全字段为文本类型)
 * @author yl_ls
 */
@Getter
@Setter
public class SupplierReviewImportPo {

  /** 评审单号 */
  @ExcelProperty("*评审单号")
  @NotBlank(message = "评审单号不能为空")
  private String reviewId;

  /** 标题 */
  @ExcelProperty("*标题")
  @NotBlank(message = "标题不能为空")
  @Size(max = 50, message = "标题长度不能超过50")
  private String title;

  /** 实施任务 */
  @ExcelProperty("*实施任务")
  @NotBlank(message = "实施任务不能为空")
  private String instanceIdInstanceId;

  @ExcelIgnore
  @Schema(title = "*实施任务")
  private String instanceId;

  /** 企业编号 */
  @ExcelProperty("*企业编号")
  @NotBlank(message = "企业编号不能为空")
  @Size(max = 200, message = "企业编号长度不能超过200")
  private String enterpriseId;

  /** 企业名称 */
  @ExcelProperty("*企业名称")
  @NotBlank(message = "企业名称不能为空")
  @Size(max = 50, message = "企业名称长度不能超过50")
  private String enterpriseName;

  /** 系统指标评分 */
  @ExcelProperty("*系统指标评分")
  @NotBlank(message = "系统指标评分不能为空")
  @IntegerString(
    message = "系统指标评分数值格式不正确",
    label = "系统指标评分",
    min = 0
  )
  private String systemReviewScoring;

  /** 人工指标评分 */
  @ExcelProperty("*人工指标评分")
  @NotBlank(message = "人工指标评分不能为空")
  @IntegerString(
    message = "人工指标评分数值格式不正确",
    label = "人工指标评分",
    min = 0
  )
  private String peopleReviewScoring;

  /** 综合评分 */
  @ExcelProperty("综合评分")
  @IntegerString(
    message = "综合评分数值格式不正确",
    label = "综合评分",
    min = 0
  )
  private String multipleReviewScoring;

  /** 评审人 */
  @ExcelProperty("评审人")
  @Size(max = 50, message = "评审人长度不能超过50")
  private String doUserName;

  @ExcelIgnore
  @Schema(title = "评审人")
  private String doUser;

  /** 评审时间 */
  @ExcelProperty("评审时间")
  @DateString(message = "评审时间不是有效的日期格式")
  private String doTime;

  /** 状态 */
  @ExcelProperty("状态")
  private String status;

  /** 备注 */
  @ExcelProperty("备注")
  @Size(max = 50, message = "备注长度不能超过50")
  private String remark;

  /** 流程编码 */
  @ExcelProperty("*流程编码")
  @NotBlank(message = "流程编码不能为空")
  private String enCode;
}
